Packet routing algorithms fall into different categories. Destination routing is a method where a destination and a source of a packet are carried in a header of the packet. At each switch in the route, a next destination is looked up in a routing table. This is referred to as a turn in the path of the packet. This may result in high latency, or delay in transmission of the packet due to the frequent look-ups in the routing table. Another category of packet routing is referred to as path routing. Each turn taken by a packet is identified in the header of the packet in the form of a list. A pointer is used to separate turns already taken from turns yet to be taken.
Although path routing reduces latency by eliminating turn look-up at every switch, it may still not be optimized. Some path routing methods use a return path that is also stored in the header for error handling. In the event of an error, the source is notified, or a request is sent back to the source using the return path. For packets that are delivered without errors, additional bandwidth consumed to carry the return path is effectively wasted bandwidth, since the return path was not needed.
Some path routing methods do not include return paths. In the case of an error, an absence of an acknowledgment signal from the receiver, an ACK, triggers a resend after a certain amount of time.
A further alternative involves the use of a mathematical routing formula to encapsulate source information in destination information. This is described in a PCE Express Advanced Switching Specification. Calculations using the formula can result in long compute times.